# $Id: layer3.py 9227e81e919a 2012/08/27 15:49:57 pgurumur $
# Copyright (c) 2012 Prabhu Gurumurthy <pgurumur@gmail.com>
#
# Permission to use, copy, modify, and distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
# copyright notice and this permission notice appear in all copies.
#
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#

__version__  = "$Revision: 9227e81e919a $"
__author__   = "$Author: pgurumur $"
__modified__ = "$Date: 2012-08-27 15:49:57Z $"

import socket

try:
   from . import ip
except ImportError as err:
   import ip

def host2ip(address, version = 0):
   retval = None
   temp = None

   try:
      if version == 4:
         temp = socket.getaddrinfo(
               address, 0, socket.AF_INET, socket.SOCK_DGRAM)
      elif version == 6:
         temp = socket.getaddrinfo(
               address, 0, socket.AF_INET6, socket.SOCK_DGRAM)
      elif version == 0:
         temp = socket.getaddrinfo(
               address, 0, socket.AF_UNSPEC, socket.SOCK_DGRAM)
   except socket.gaierror as err:
      pass
   else:
      for ix in temp:
         retval = ip.ip(ix[-1][0])
         break

   return retval
